<?

// Модель работы с калькулятором

class Model_Calc extends Model
{

	public function isEnter() 
	{
		// Пользователь вошел если есть ключ и токен не утратил силу до сих пор
		
		$session = Session::instance();
		$token = $session->get('token');
		$tokentime = $session->get('tokentime');	
		return ($token!='' && $tokentime>=time());
		
	}

	public function login($login,$pass)
	{
		$slogin = new Soap_Login(Kohana::$config->load('soap.defautl'));
		//Пытаемся залогиниться
		$res = $slogin->login($login,$pass);
		if ($res['code']==0)
		{
			
			// Если нет ошибки записываем данные в сессию
			$session = Session::instance();
			$session->set('token',$res['mess']);
			$session->set('tokentime',time()+60*10); //Время ключа 10 минут
			return true;
		}
		else
		return $res['mess'];

	}
	
	public function logout()
	{
		$session = Session::instance();
		$session->delete('token');
		$session->delete('tokentime');
	}

	public function calculate($operation, $num1, $num2)
	{
		if ($this->isEnter())
		{
			$scalc = new Soap_Calc(Kohana::$config->load('soap.defautl'));
			switch ($operation)
			{
				case 'divide' :
					$res = $scalc->divide($_SESSION['token'],$num1,$num2);
					break;
				case 'multiply' :
					$res = $scalc->multiply($_SESSION['token'],$num1,$num2);
					break;
				case 'plus' :
					$res = $scalc->plus($_SESSION['token'],$num1,$num2);
					break;
				case 'minus' :
					$res = $scalc->minus($_SESSION['token'],$num1,$num2);
					break;
			}		
			
			
			
		}
		else 
		{
			$res['code'] = 2;
			$res['mess'] = 'Ошибка! Вход не выполнен';
		}
		return $res;

	}
}